package org.easyx.ser.schedule.util;

import java.util.List;

import org.easyx.ser.schedule.entity.SchedulerJob;

public interface TaskJobManageService {
	/**
	 * 添加任务
	 * 
	 * @param taskJob
	 */
	void addTaskJob(SchedulerJob taskJob);

	/**
	 * 暂停任务
	 * 
	 * @param taskJob
	 */
	void pauseTaskJob(SchedulerJob taskJob);

	/**
	 * 恢复任务
	 * 
	 * @param taskJob
	 */
	void resumeTaskJob(SchedulerJob taskJob);

	/**
	 * 删除任务
	 * 
	 * @param taskJob
	 */
	void deleteTaskJob(SchedulerJob taskJob);

	/**
	 * 立即执行任务
	 * 
	 * @param taskJob
	 */
	void runTaskJobNow(SchedulerJob taskJob);

	/**
	 * 更新任务
	 * 
	 * @param taskJob
	 */
	void updateSchedule(SchedulerJob taskJob);

	/**
	 * 所有任务
	 * 
	 * @return
	 */
	List<SchedulerJob> getAllTaskJob();

	/**
	 * 所有正在运行的任务
	 * 
	 * @return
	 */
	List<SchedulerJob> getAllTaskJobRunning();

	/**
	 * 系统初始化添加计划任务,并启动<br>
	 * 
	 * 例如：<br>
	 * 	SchedulerJobService taskJobService = (SchedulerJobService)app.getBean("schedulerJobService");
		List<SchedulerJob> jobList = taskJobService.selectList(null);
		TaskJobManageService taskJobManageService = (TaskJobManageService) app.getBean("taskJobManageService");
		taskJobManageService.init(jobList);
	 * 
	 */
	void init(List<SchedulerJob> jobList);
}
